package com.example.learnjava.exception;

/**
 * 有一个圆形和长方形。
 * 都可以获取面积，对于面积如果出现非法的数值，视为是获取面积出现问题。
 * 问题通过异常来表示。
 * 现在对这个程序进行基本设计。
 */

class NoValueException extends /*Exception*/RuntimeException {
    public NoValueException(String message) {
        super(message);
    }
}

interface Shape {
    void getArea();
}

class Rec implements Shape {

    private int len, wid;

    public Rec(int len, int wid) /*throws NoValueException*/ {
        if (len <= 0 || wid <= 0) {
            throw new NoValueException("出现非法值");
        }
        this.len = len;
        this.wid = wid;
    }

    @Override
    public void getArea() {
        System.out.println(len * wid);
    }
}

class Circle implements Shape {
    private int radius;
    public static final float PI = 3.14f;

    public Circle(int radius) {
        if (radius<=0){
            throw new NoValueException("非法");
        }
        this.radius = radius;
    }

    @Override
    public void getArea() {
        System.out.println(radius * radius * PI);
    }
}

public class g_pracetise_121 {
    public static void main(String[] args) {

//        try {
//            Rec r = new Rec(-3, 4);
//            r.getArea();
//        } catch (NoValueException e) {
//            System.out.println(e.toString());
//        }
//        System.out.println("over");

//        Rec r = new Rec(-3, 4);
//        r.getArea();
//        System.out.println("over");

        Circle circle=new Circle(-8);
        System.out.println("over");

    }

}
